package com.yt.lxh.activity.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yt.lxh.dto.activity.coupon.PublishCouponDTO;
import com.yt.lxh.dto.activity.coupon.QueryCouponDTO;
import com.yt.lxh.dto.activity.coupon.SaveCouponDTO;
import com.yt.lxh.dto.activity.coupon.UpdateCouponDTO;
import com.yt.lxh.enums.CouponStatus;
import com.yt.lxh.model.activity.CouponInfo;
import com.yt.lxh.vo.activity.coupon.CouponPageVO;
import com.yt.lxh.vo.activity.coupon.UserOwnCouponVO;

import java.util.List;

/**
 * <p>
 * 优惠券信息 服务类
 * </p>
 *
 * @author raoshaotian
 * @since 2023-11-26
 */
public interface CouponInfoService extends IService<CouponInfo> {

    IPage<CouponPageVO> getPage(QueryCouponDTO query);

    void saveCoupon(SaveCouponDTO couponDTO);

    void publishCouponById(PublishCouponDTO couponDTO);

    void updateCoupon(UpdateCouponDTO couponDTO);

    void updateCouponStatusById(String cid, CouponStatus couponStatus);

    void delCouponById(String id);

    CouponInfo getById(String id);

    void incrReceiveCount(CouponInfo couponInfo);

    List<UserOwnCouponVO> getCouponListByUserId(String id);

}
